android WebView加载html 并 引用本地资源(图片、字体库) 您所在的位置:网站首页 html 本地文件路径 安卓 android WebView加载html 并 引用本地资源(图片、字体库)

android WebView加载html 并 引用本地资源(图片、字体库)

2024-05-24 02:41| 来源: 网络整理| 查看: 265

本文介绍如何用android WebView加载html代码,并在html内引用apk里的资源文件,例如图片、字体库等。

先说一般情况,文件夹有html、ttf字库、图片

html代码如下:

.text { font-family: STANK; font-size:60px;} @font-face { font-family: STANK; src:url(STANK.ttf); }

font

打开这个content.html,有如下效果:

那么,加载到webView的html代码,应该如何引用 assets文件、res/drawable、sd卡里面文件呢?

webView加载html代码,有两个方法:

1.webView.loadData(String data, String mimeType, String encoding) 2. webView.loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String failUrl);

经过试验,只能用loadDataWithBaseURL。参数里面有baseUrl,这个是指定html文件目录的。例如,content.html在 assets/html/content.html,那么

baseUrl = file:///android_asset/html/ 如果content.html在 /sdcard/html/content.html,那么 baseUrl = file:///sdcard/html/

注意:保证"file:"后面要有三个'/'

实战:

1.现在,assets目录结构是这样:

java代码:

webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);

html代码:

.text { font-family: Impact; font-size:60px;} @font-face { font-family: Impact; src:url( ../font/Impact.ttf ); }

font

如果图片在/sdcard/html/image0.png,ttf文件在/sdcard/html/font/Impact.ttf ,则

@font-face { font-family: Impact; src:url( file:///sdcard/html/font/Impact.ttf ); }

如果图片在res/drawable-xhdpi 或其他drawable文件夹,则

2.当html文件在/sdcard/html/content.html

java代码:

webView.loadDataWithBaseURL(“file:///sdcard/html/”, html, "text/html", "UTF-8", null); html代码:

.text { font-family: Impact; font-size:60px;} @font-face { font-family: Impact; src:url( font/Impact.ttf ); }

font

如果图片是在assets/html/image0.png,则

如果图片在res/drawable/下,同理。

=================================================================

demo下载

http://download.csdn.net/detail/kkmike999/8502163



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有